/*
 * ChromossomeDecoder.h
 *
 *  Created on: Jan 15, 2012
 *      Author: luiz
 */

#ifndef CHROMOSSOMEDECODER_H_
#define CHROMOSSOMEDECODER_H_

#include "../Entity/Instance.h"
#include "../Entity/Chromosome.h"
#include "../Entity/Layer.h"


class ChromosomeDecoder
{



public:
    ChromosomeDecoder();
    virtual ~ChromosomeDecoder();

    Layer getChromossomeDecoded(Instance & instance,Chromosome & chromossome);
    Layer getChromossomeDecodedByLayerDefault(const Instance & instance,const Chromosome & chromossome, const Layer &layer_default);
    void defineCellClockZone(Cell & cell, Cell& cell_previous, Layer & layer,const Instance & instance, int different_clock);
    void defineOuputCellClockZone(Cell & cell,Layer & layer,const Instance & instance);
    Cell::CLOCK_ZONE getZoneClockByNeighborhood();
};

#endif /* CHROMOSSOMEDECODER_H_ */
